<?php

require_once($_SERVER['DOCUMENT_ROOT'] . '/fatec-si/daos/' . 'EventoDAO.php');

class EventoController {

    private $eventoDAO;

    public function __construct() {
        $this->eventoDAO = new EventoDAO();
    }

    public function salvar(array $params) {
        if (empty($params["id_processo"])) {
            $id_processo = "";
        } else {
            $id_processo = $params["id_processo"];
        }
        if (empty($params["nome"])) {
            $nome = "";
        } else {
            $nome = $params["nome"];
        }
        if (empty($params["data_inicio"])) {
            $data_inicio = "";
        } else {
            $data_inicio = $params["data_inicio"];
        }
        if (empty($params["data_proximo"])) {
            $data_proximo = "";
        } else {
            $data_proximo = $params["data_proximo"];
        }
        if (empty($params["documento_caminho"])) {
            $documento_caminho = "";
        } else {
            $documento_caminho = $params["documento_caminho"];
        }
        $data = array(
            'id_processo' => $id_processo, 'nome' => $nome, 'data_inicio' => $data_inicio, 'data_proximo' => $data_proximo, 'documento_caminho' => $documento_caminho);
        $result = $this->eventoDAO->save($data);
        //retorno 1 caso salve o evento ou 0 para erro
        echo json_encode($result);
    }

    public function getEvento(array $params) {

        $row = $this->eventoDAO->findById($params['id_evento']);

        $response = array(
            $row['id_processo'],
            $row['nome'],
            $row['data_inicio'],
            $row['data_proximo'],
            $row['documento_caminho']
        );
        echo json_encode($response);
    }

    public function atualizarEvento(array $params) {
        $rows = $this->eventoDAO->update($params);
        if ($rows) {
            echo "1";
        } else {
            echo "o";
        }
    }

    public function removerEvento(array $params) {
        $result = $this->eventoDAO->removeById($params['id_evento']);
        if ($result == 0) {
            echo "ok";
        }
        echo "fail";
    }

    public function listAllByProcesso($p) {
        $page = $p['page'];
        $limit = $p['rows'];
        $sidx = $p['sidx'];
        $sord = $p['sord'];
        $id_processo = $p['id_processo'];
        $search_field = $p['searchField'];
        $search_string = $p['searchString'];
        $search_oper = $p['searchOper'];
        if (!$sidx)
            $sidx = 1;
        $count = $this->eventoDAO->count();
        $total_pages = ($count > 0 ? ceil($count / $limit) : $total_pages = 0);
        if ($page > $total_pages)
            $page = $total_pages;
        $start = $limit * $page - $limit;
        if ($start < 0)
            $start = 0;
        if ($search_string == "") {
            $result = $this->eventoDAO->findAllByProcesso($id_processo, $sidx, $sord, $start, $limit);
        } else {
            $result = $this->eventoDAO->findAllByProcessoWithFilters($id_processo, $sidx, $sord, $start, $limit, $search_field, $search_string, $search_oper);
        }
        $response->page = $page;
        $response->total = $total_pages;
        $response->records = $count;
        for ($i = 0; $i < count($result); $i++) {
            $row = $result[$i];
            $response->rows[$i]['id'] = $row['id_evento'];
            $response->rows[$i]['cell'] = array($row['id_evento'], $row['id_processo'], $row['nome'], $row['data_inicio'], $row['data_proximo'], $row['documento_caminho'], '');
        }
        echo json_encode($response);
    }

}